// author fucaihe@pryun.com.cn
// create time 2018-06-06 11:11:11
// 字符串操作工具

package kit

import (
	"regexp"
	"strings"
)

// TrimHTML 去掉HTML标签
func TrimHTML(src string) string {
	// 将HTML标签全转换成小写
	re, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
	src = re.ReplaceAllStringFunc(src, strings.ToLower)

	// 去除STYLE
	re, _ = regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
	src = re.ReplaceAllString(src, "")

	// 去除SCRIPT
	re, _ = regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
	src = re.ReplaceAllString(src, "")

	// 去除所有尖括号内的HTML代码，并换成换行符
	re, _ = regexp.Compile("\\<[\\S\\s]+?\\>")
	src = re.ReplaceAllString(src, "\n")

	// 去除连续的换行符
	// re, _ = regexp.Compile("\\s{2,}")
	// src = re.ReplaceAllString(src, "\n")

	// 去除换行符
	src = strings.Replace(src, "\n", "", -1)

	// 替换特殊空格为普通空格
	src = strings.Replace(src, "　", " ", -1)

	// 去掉连续空格
	re = regexp.MustCompile("\\s+")
	src = re.ReplaceAllString(src, "")

	return strings.TrimSpace(src)
}
